#ifndef BSUPPORT_H
#define BSUPPORT_H 1


struct BackSupportNode;

struct BackSupportNode
{
	int value;
	int dependants;
	BackSupportNode* pre;
	BackSupportNode* next;
};

class BackSupportList
{
	int listcount;
	//BackSupportNode** nodelists;
	BackSupportNode* nlist;
	BackSupportNode* nextEmpty;
	int count;
	void deleteNode(BackSupportNode*);
public:
	//SupportList():nodelists(0),nextEmpty(0),count(0) {}
	BackSupportList():nlist(0),nextEmpty(0),count(0) {}
	~BackSupportList();
	void generateList(int,int,int);
	void removeSupport(Domain* var,BackSupportNode *val);
	BackSupportNode* setSupport(Domain* var, int val);
	void transferSupport(Domain* var, BackSupportNode* val1, int val2);
};

#endif

